// 我们自己的 js 文件，然后这个 JS 需要求  圆周长和圆面积

// var circle = require('./circle'); // 强调：同一个文件目录必须用 ./ 表示
// console.log('引入的模块：', circle);

// console.log(circle(2));
// console.log(circle.getS(2));

// 即当前文件所有的代码都会被一个函数包装起来
// 而函数内部可以使用 arguments 对象
// console.log(String(arguments.callee));

var path = require('path');

// console.log(path.join('/src', 'node', 'index.js')); // \src\node\index.js
// console.log(path.join('/src', 'node', './index.js')); // \src\node\index.js
// console.log(path.join('/src', 'node', '/index.js')); // \src\node\index.js
// console.log(path.join('/src', 'node', '..', '/index.js')); // \src\index.js
// console.log(path.join('src', 'node', 'index.js')); // src\node\index.js

// console.log(path.resolve('/src', 'node', 'index.js')); // D:\src\node\index.js
// console.log(path.resolve('/src', 'node', './index.js')); // D:\src\node\index.js
// console.log(path.resolve('/src', 'node', '/index.js')); // D:\index.js
// console.log(path.resolve('/src', 'node', '..', 'index.js')); // D:\src\index.js
// console.log(path.resolve('src', 'node', 'index.js')); // D:\westsec\BaiJie\web-290\课程\state-3\1-nodejs\day01-node\code\src\node\index.js



// 文件操作 demo
var fs = require('fs');

// 以异步的，方式读取文件
fs.readFile('./t1.txt', 'utf8', function (err, data) {
  if (err) {
    console.log('如果文件读取失败，会生成 err 对象，该对象保存读取失败的原因：', err);
  } else {
    console.log('如果 err 对象不存在，则表示读取成功，data 对象保存了读取的内容：', data);
  }
});

fs.readFile('./t2.txt', 'utf8', function (err, data) {
  if (err) {
    console.log('如果文件读取失败，会生成 err 对象，该对象保存读取失败的原因：', err);
  } else {
    console.log('如果 err 对象不存在，则表示读取成功，data 对象保存了读取的内容：', data);
  }
});
console.log('nodejs是以回调函数的形式实现的并发，当读取文件时，并不会阻碍后面的代码的执行，文件读取成功后，再调用函数执行内部的逻辑。');

// 思考题：由于异步的原因，没有办法确认 t1 先读取完毕还是 t2 再读取完毕，但是我需要实现 t1 读取完毕后，再读取 t2？

// 写入文件
// var url = path.resolve('data', 'w1.txt');
// var str = '马上五一了，去哪玩儿';
// fs.writeFile(url, str, function (err) {
//   if (err) {
//     console.log('文件写入失败：', err);
//     return;
//   }
//   console.log('文件写入成功');
// });